package com.ruoyi.quanzi.service;

import java.util.List;
import com.ruoyi.quanzi.domain.SunTopic;

/**
 * 话题服务接口
 * 
 * @author ruoyi
 * @date 2023-01-15
 */
public interface ISunTopicService 
{
    /**
     * 查询话题
     * 
     * @param id 话题ID
     * @return 话题
     */
    public SunTopic selectSunTopicById(Long id);

    /**
     * 查询话题列表
     * 
     * @param sunTopic 话题
     * @return 话题集合
     */
    public List<SunTopic> selectSunTopicList(SunTopic sunTopic);

    /**
     * 新增话题
     * 
     * @param sunTopic 话题
     * @return 结果
     */
    public int insertSunTopic(SunTopic sunTopic);

    /**
     * 修改话题
     * 
     * @param sunTopic 话题
     * @return 结果
     */
    public int updateSunTopic(SunTopic sunTopic);

    /**
    /**
     * 批量删除话题
     * 
     * @param ids 需要删除的话题ID
     * @return 结果
     */
    public int deleteSunTopicByIds(Long[] ids);
    
    /**
     * 批量删除话题（兼容旧代码）
     * 
     * @param topicIds 需要删除的话题ID
     * @return 结果
     */
    public int deleteSunTopicByTopicIds(Long[] topicIds);

    /**
     * 删除话题信息
     * 
     * @param id 话题ID
     * @return 结果
     */
    public int deleteSunTopicById(Long id);
    
    /**
     * 查询热门话题
     * 
     * @return 热门话题集合
     */
    public List<SunTopic> selectHotTopics();
    
    /**
     * 查询推荐话题
     * 
     * @return 推荐话题集合
     */
    public List<SunTopic> selectRecommendTopics();
    
    /**
     * 关注话题
     * 
     * @param topicId 话题ID
     * @param userId 用户ID
     * @return 结果
     */
    public int followTopic(Long topicId, Long userId);
    
    /**
     * 取消关注话题
     * 
     * @param topicId 话题ID
     * @param userId 用户ID
     * @return 结果
     */
    public int unfollowTopic(Long topicId, Long userId);
    
    /**
     * 查询用户关注的话题
     * 
     * @param userId 用户ID
     * @return 话题集合
     */
    public List<SunTopic> selectFollowedTopics(Long userId);
}